package com.yl.pattern.creatormodel.singleton.demo7;

import java.io.Serializable;

/**
 * @Author 小羊
 * @Date 29/10/2024下午 7:23
 * @ClassName Singleton
 * @Description 静态内部类
 */
public class Singleton implements Serializable {
    /**
     * 私有构造方法
     */
    private Singleton(){}
    /**
     * 定义一个静态内部类
     */
    private static class SingletonHolder{
        //在内部类中声明并初始化外部对象
        private static final Singleton INSTANCE = new Singleton();
    }
    /**
     * 提供公共得访问方式
     */
    public static Singleton getInstance(){
        return SingletonHolder.INSTANCE;
    }
    /**
     * 解决序列化破坏单例模式
     */
    public Object readResolve(){
        return SingletonHolder.INSTANCE;
    }
}
